import { reactive } from 'vue';
import Request from '@/api/request/request';
import { ElMessage } from 'element-plus';

/**
 * 设计目的：针对Ljy封装的表单组件等设计，主要意图是显示关联属性。
 * 例如：在文本框中显示item['materialName]是可以正常显示的，
 * 但是如果是要嵌套关联属性，例如显示item[material.name]，直接是无法显示的，必须通过调用这个方法。
 * @param item
 * @param name
 * @returns
 */
export function getValue(item: any, name: string) {
  if (!name) return '';
  //使用 split('.') 方法将 name 按照点分隔符分割成一个数组 keys。例如，'material.name' 会被分割成 ['material', 'name']
  const keys = name.split('.');
  //初始化变量为item,在后续的循环中逐步深入对象的嵌套属性。
  let result: any = item;
  for (const key of keys) {
    if (result && typeof result === 'object' && key in result) {
      result = result[key];
    } else {
      return ''; // 如果在某个层级找不到属性，返回空字符串
    }
  }
  // return String(result); // 确保返回的是字符串
  return result;
}
